Most software programs rely on a massive, platform-dependent update mechanism where the main application must be brought off-line for the update. For example, for typical software, the program is shut down, an update is installed, and the program is brought back up. Such a system can be disruptive to the user workflow thereby reducing productivity.